core(fr): use frame url in gather context #13699
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In legacy navigations
context.url
is the current frame URL and is unaffected by the history API.However in FR navigations,
context.url
is the result ofpage.url()
from Puppeteer and is affected by the history API. This can lead to issues in FR navigations where we try and usecontext.url
to get the main document, butcontext.url
is not the URL used to fetch the main document.This PR ensures
context.url
reflects the current frame URL without considering any history API calls once we reach thegetArtifact
phase.Once we deprecate the legacy navigation runner, I think we should deprecate
context.url
. Then we can usecontext.baseArtifacts.URL
to get the frame URL andcontext.driver.url()
to get the URL affected by history API.